import request from './request'

// 用户登录
export function login(username, password) {
  return request({
    url: '/api/auth/login',
    method: 'post',
    data: {
      username,
      password
    }
  })
}

// 刷新JWT令牌
export function refreshToken() {
  return request({
    url: '/api/auth/refresh',
    method: 'post'
  })
}

// 获取用户信息
export function getUserInfo(username) {
  return request({
    url: `/api/users/${username}`,
    method: 'get'
  })
}

// 获取所有用户（分页，仅管理员）
export function getAllUsers(params = {}) {
  return request({
    url: '/api/users',
    method: 'get',
    params
  })
}

// 获取所有用户（列表形式，用于下拉选择等场景）
export function getAllUsersList() {
  return request({
    url: '/api/users/list',
    method: 'get'
  })
}

// 根据当前用户权限获取可见的用户列表
export function getAccessibleUsers() {
  return request({
    url: '/api/users/accessible',
    method: 'get'
  })
}

// 创建用户（仅管理员）
export function createUser(userData) {
  return request({
    url: '/api/users',
    method: 'post',
    data: userData
  })
}

// 更新用户信息（仅管理员）
export function updateUser(id, userData) {
  return request({
    url: `/api/users/${id}`,
    method: 'put',
    data: userData
  })
}

// 删除用户（仅管理员）
export function deleteUser(id) {
  return request({
    url: `/api/users/${id}`,
    method: 'delete'
  })
}

// 重置用户密码（仅管理员）
export function resetUserPassword(id) {
  return request({
    url: `/api/users/${id}/reset-password`,
    method: 'post'
  })
}

// 修改当前用户密码
export function changePassword(passwordData) {
  return request({
    url: '/api/users/change-password',
    method: 'post',
    data: passwordData
  })
}

// 用户批量导入
export function importUsers(file) {
  const formData = new FormData()
  formData.append('file', file)
  return request({
    url: '/api/users/import',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

// 下载用户导入模板
export function downloadUserTemplate() {
  return request({
    url: '/api/users/import/template',
    method: 'get',
    responseType: 'blob'
  })
}
